package com.baofu.paycore.dal.mapper;

import com.baofu.paycore.dal.model.SubPayDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *  支付资金单
 * <p>
 *      1、新增支付资金单
 *      2、修改支付资金单状态
 *      2、修改支付资金单状态
 * </p>
 * User: xin deng  Date: 16/4/20 ProjectName: paycore Version: 1.0
 */
public interface SubPayMapper {

    /**
     * 新增支付资金单
     *
     * @param subPayDO  资金单对象
     * @return          新增数
     */
    int insert(SubPayDO subPayDO);

    /**
     * 修改支付资金单状态
     *
     * @param subPayDO  资金单对象
     * @return          更新数
     */
    int updateSubPay(SubPayDO subPayDO);

    /**
     * 根据支付单号查询子单
     *
     * @param payNo     支付单号
     * @return          子单列表
     */
    List<SubPayDO> selectByPayNo(String payNo);

    /**
     * 更新支付资金单退款金额
     *
     * @param fundDetailNo    资金明细单号
     * @param refundAmt       退款金额
     * @param updatedBy       更新人
     * @return                更新记录数
     */
    int updateRefundAmt(@Param("fundDetailNo")  String fundDetailNo,
                        @Param("refundAmt")     Long refundAmt,
                        @Param("updatedBy")     String updatedBy);


    /**
     * 更新支付资金单退款金额
     *
     * @param fundDetailNo    资金明细单号
     * @param refundAmt       退款金额
     * @param updatedBy       更新人
     * @return                更新记录数
     */
    int updateRefundAmtByFallback(@Param("fundDetailNo")  String fundDetailNo,
                                  @Param("refundAmt")     Long refundAmt,
                                  @Param("updatedBy")     String updatedBy);
}
